//杨辉三角形实现方法一：递归
function combination(m, n) {
    if (n == 0) return 1; //第一个数为1
    else if (m == n) return 1; //最后一个数为1
    else return combination(m - 1, n - 1) + combination(m - 1, n); //中间的数为前一行的两个数相加
}

function generateRecursive(n) {
    for (var i = 0; i < n; i++) {
        let arr = []; //用来放第i行的数
        for (var j = 0; j <= i; j++) {
            arr.push(combination(i, j));
        }
        console.log(arr.join(' ')); //字符串形式输出
    }
}
generateRecursive(5)

//杨辉三角形实现方法而：非递归
var generate = function (numRows) {
        var result = [[1]];
        for (var i = 1; i < numRows; i++) {
            result[i] = [];
            for (var j = 0; j < i + 1; j++) {
                result[i][j] = (result[i - 1][j] || 0) + (result[i - 1][j - 1] || 0);
            }
        }
        return result;
};
const result = generate(5)

for (var i = 0; i < result.length; i++) {
    console.log(result[i].join(' ')); //字符串形式输出
}